Method and apparatus for filtering noisy estimates to reduce estimation errors

ABSTRACT

Techniques for filtering noisy estimates to reduce estimation errors are described. A sequence of input values (e.g., for an initial channel impulse response estimate (CIRE)) is filtered with an infinite impulse response (IIR) filter having at least one coefficient to obtain a sequence of output values (e.g., for a filtered CIRE). The coefficient(s) are updated based on the sequence of input values with an adaptive filter, a bank of prediction filters, or a normalized variation technique. To update the coefficient(s) with the adaptive filter, a sequence of predicted values is derived based on the sequence of input values. Prediction errors between the sequence of predicted values and the sequence of input values are determined and filtered to obtain filtered prediction errors. The coefficient(s) of the IIR filter are then updated based on the prediction errors and the filtered prediction errors.

The present application claims priority to provisional U.S. ApplicationSer. No. 60/737,256, entitled “Prediction Based Optimal Adaptation ofPilot Filter Coefficients for Improved Channel Estimation,” filed Nov.15, 2005, assigned to the assignee hereof and incorporated herein byreference.

BACKGROUND

I. Field

The present disclosure relates generally to communication, and morespecifically to filtering techniques.

II. Background

In a wireless communication system, a transmitter typically processes(e.g., encodes and modulates) traffic data to generate data symbols. Fora coherent system, the transmitter multiplexes pilot symbols with thedata symbols, processes the multiplexed data and pilot symbols togenerate a radio frequency (RF) signal, and transmits the RF signal viaa wireless channel. The wireless channel distorts the transmitted RFsignal with a channel response and further degrades the signal withnoise and interference.

A receiver receives the transmitted RF signal and processes the receivedRF signal to obtain samples. For coherent data detection, the receiverestimates the response of the wireless channel based on the receivedpilot and derives a channel estimate. The receiver then performs datadetection (e.g., equalization) on the samples with the channel estimateto obtain symbol estimates, which are estimates of the data symbols sentby the transmitter. The receiver then processes (e.g., demodulates anddecodes) the symbol estimates to obtain decoded data.

The quality of the channel estimate may have a large impact on datadetection performance and may affect the quality of the symbol estimatesas well as the reliability of the decoded data. There is therefore aneed in the art for techniques to derive a high quality channel estimatein a wireless communication system.

SUMMARY

Techniques for filtering noisy estimates to reduce estimation errors andobtain higher quality estimates are described herein. These techniquesmay be used for various applications, and the noisy estimates may be anyscalar, vector, or matrix. One exemplary application of the techniquesis for filtering noisy estimates of a channel impulse response (CIR),which is a time-domain response of a communication channel.

In an embodiment, a sequence of input values is filtered with aninfinite impulse response (IIR) filter having at least one coefficientto obtain a sequence of output values. The sequence of input values maybe for an initial channel impulse response estimate (CIRE), and thesequence of output values may be for a filtered CIRE. The coefficient(s)of the IIR filter are updated based on the sequence of input valuesusing one of the update techniques described herein. The IIR filter mayhave a single coefficient that is referred to as alpha.

In an embodiment, the coefficient(s) of the IIR filter are updated basedon an adaptive filter. In this embodiment, a sequence of predictedvalues is derived based on the sequence of input values, and may beequal to a delayed version of the sequence of output values. Predictionerrors between the sequence of predicted values and the sequence ofinput values are determined and filtered (e.g., with the coefficient(s)of the IIR filter) to obtain filtered prediction errors. Thecoefficient(s) of the IIR filter are then updated based on theprediction errors and the filtered prediction errors.

In another embodiment, the coefficient(s) of the IIR filter are updatedbased on a bank of prediction filters. In this embodiment, the sequenceof input values is filtered with multiple prediction filters to obtainmultiple sequences of predicted values. Each prediction filter has adifferent set of at least one coefficient. The prediction filter withthe smallest prediction error among the multiple prediction filters isidentified. The set of coefficient(s) for the identified predictionfilter is selected for use to filter the sequence of input values.

In yet another embodiment, the coefficient(s) of the IIR filter areupdated based on a normalized variation technique. In this embodiment,variation of a sequence of actual samples (e.g., the CIR) is estimatedbased on the sequence of input values. This may be achieved byestimating the energy of the sequence of input values, estimating thenoise in the sequence of input values, and estimating the variation ofthe sequence of input samples. The variation of the sequence of actualsamples may then be estimated based on the estimated energy, estimatednoise, and estimated variation of the sequence of input values. Thecoefficient(s) of the IIR filter are determined based on the estimatedvariation of the sequence of actual samples, e.g., using a look-up tableor by direct calculation.

Various aspects and embodiments of the invention are described infurther detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

The features and nature of the present invention will become moreapparent from the detailed description set forth below when taken inconjunction with the drawings in which like reference charactersidentify correspondingly throughout.

FIG. 1 shows a transmission in a wireless communication system.

FIG. 2 shows a block diagram of a base station and a wireless device.

FIG. 3 shows a block diagram of an equalizer at the wireless device.

FIG. 4 shows a block diagram of a channel IIR filter.

FIG. 5 shows plots of throughput versus alpha for three speed scenarios.

FIGS. 6, 7 and 8 show units that update alpha based on an adaptivefilter, a bank of prediction filters, and the normalized variationtechnique, respectively.

FIG. 9 shows a process for filtering noisy estimates.

FIGS. 10, 11 and 12 show processes for updating alpha based on anadaptive filter, a bank of prediction filters, and the normalizedvariation technique, respectively.

DETAILED DESCRIPTION

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any embodiment or design described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments or designs.

FIG. 1 shows an exemplary transmission in a wireless communicationsystem. For simplicity, FIG. 1 shows only one base station 110 and onewireless device 120. A base station is generally a fixed station thatcommunicates with the wireless devices and may also be called a Node B,an access point, a base transceiver station (BTS), or some otherterminology. A wireless device may be fixed or mobile and may also becalled a user equipment (UE), a mobile station, a user terminal, asubscriber unit, or some other terminology. A wireless device may be acellular phone, a personal digital assistant (PDA), a wireless modemcard, a handheld device, or some other device or apparatus.

Base station 110 transmits an RF signal to wireless device 120. This RFsignal may reach wireless device 120 via one or more signal paths, whichmay include a direct path and/or reflected paths. The reflected pathsare created by reflections of radio waves due to obstructions (e.g.,buildings, trees, vehicles, and other structures) in the wirelessenvironment. Wireless device 120 may receive multiple instances orcopies of the transmitted RF signal. Each received signal instance isobtained via a different signal path and has a particular complex gainand a particular time delay determined by that signal path. The receivedRF signal at wireless device 120 is a superposition of all of thereceived signal instances. Wireless device 120 may also receiveinterfering transmissions from other transmitting stations, which areshown by dashed lines in FIG. 1.

The filtering techniques described herein may be used for variouscommunication systems such as a Code Division Multiple Access (CDMA)system, a Time Division Multiple Access (TDMA) system, a FrequencyDivision Multiple Access (FDMA) system, an Orthogonal Frequency DivisionMultiple Access (OFDMA) system, a Single-Carrier FDMA (SC-FDMA) system,and so on. A CDMA system may implement one or more radio technologiessuch as Wideband-CDMA (W-CDMA), cdma2000, and so on. cdma2000 coversIS-2000, IS-856 and IS-95 standards. A TDMA system may implement a radiotechnology such as Global System for Mobile Communications (GSM). Thesevarious radio technologies and standards are known in the art. W-CDMAand GSM are described in documents from an organization named “3rdGeneration Partnership Project” (3GPP). cdma2000 is described indocuments from an organization named “3rd Generation Partnership Project2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. An OFDMAsystem transmits modulation symbols in the frequency domain onorthogonal subcarriers using OFDM. An SC-FDMA system transmitsmodulation symbols in the time domain on orthogonal subcarriers.

The filtering techniques described herein may be used for a wirelessdevice as well as a base station. For clarity, these techniques aredescribed below for a wireless device in a CDMA system, which may be aW-CDMA system or a cdma2000 system.

FIG. 2 shows a block diagram of base station 110 and wireless device120. At base station 110, a transmit (TX) data processor 210 receivestraffic data for the wireless devices being served and processes (e.g.,encodes, interleaves, and symbol maps) the traffic data to generate datasymbols. As used herein, a data symbol is a modulation symbol for data,a pilot symbol is a modulation symbol for pilot, a modulation symbol isa complex value for a point in a signal constellation (e.g., for M-PSKor M-QAM), and pilot is data that is known a priori by both the basestation and the wireless device. A CDMA modulator 220 processes the datasymbols and pilot symbols and provides output chips to a transmitter(TMTR) 230. Transmitter 230 processes (e.g., converts to analog,amplifies, filters, and frequency upconverts) the output chips andgenerates an RF signal, which is transmitted from an antenna 232.

At wireless device 120, an antenna 252 receives the transmitted RFsignal via direct and/or reflected paths and provides a received RFsignal to a receiver (RCVR) 254. Receiver 254 processes (e.g., filters,amplifies, frequency downconverts, and digitizes) the received RF signalto obtain received samples. Receiver 254 may perform pre-processing onthe received samples and provide input samples to an equalizer/rakereceiver 260. The pre-processing may include, e.g., automatic gaincontrol (AGC), frequency correction, digital filtering, sample rateconversion, and so on. Equalizer/rake receiver 260 processes the inputsamples (e.g., with an equalizer or a rake receiver) and provides outputsamples. A CDMA demodulator (Demod) 270 processes the output samples ina manner complementary to the processing by CDMA modulator 220 andprovides symbol estimates, which are estimates of the data symbols sentby base station 110 to wireless device 120. The rake receiver and CDMAdemodulator may also be combined. A receive (RX) data processor 280processes (e.g., symbol demaps, deinterleaves, and decodes) the symbolestimates and provides decoded data. In general, the processing by CDMAdemodulator 270 and RX data processor 280 is complementary to theprocessing by CDMA modulator 220 and TX data processor 210,respectively, at base station 110.

Controllers/processors 240 and 290 direct operation of variousprocessing units at base station 110 and wireless device 120,respectively. Memories 242 and 292 store data and program codes for basestation 110 and wireless device 120, respectively.

At wireless device 120, the input samples from receiver 254 may beexpressed as: $\begin{matrix}\begin{matrix}{{{y(k)} = {{{h(k)} \otimes \lbrack {{x(k)} + {p(k)}} \rbrack} + {w(k)}}},} \\{{= {{\sum\limits_{i = {- \infty}}^{\infty}{{h(i)} \cdot \lbrack {{x( {k - i} )} + {p( {k - i} )}} \rbrack}} + {w(k)}}},}\end{matrix} & {{Eq}\quad(1)}\end{matrix}$where x(k) is a signal component of interest for wireless device 120,

-   -   p(k) is the pilot from base station 110,    -   h(k) is a time-domain impulse response of the wireless channel        between base station 110 and wireless device 120,    -   w(k) is the total noise and interference observed by x(k) and        p(k),    -   y(k) is the input samples at wireless device 120, and    -   {circle around (×)} denotes a convolution.

In equation (1), x(k) may be the signal component for a physical channelof interest to wireless device 120. w(k) may include signal componentsfor other physical channels from base station 110, noise from varioussources, and interference from other transmitting stations. Forsimplicity, w(k) is assumed to be additive white Gaussian noise (AWGN)with zero mean and a variance of σ². The input samples y(k) may beprocessed with an equalizer to obtain an estimate of the desired signalx(k).

FIG. 3 shows a block diagram of an equalizer 260 a, which is anembodiment of equalizer/rake receiver 260 in FIG. 2. In this embodiment,the input samples y(k) from receiver 254 are provided to a channelestimator 310 and a data finite impulse response (FIR) filter 360.Channel estimator 310 derives a channel impulse response estimate (CIRE)ĥ_(n)(l) for the wireless channel between base station 110 and wirelessdevice 120. A computation unit 350 receives the CIRE ĥ_(n)(l) andderives equalizer coefficients based on this CIRE and using, e.g.,linear minimum mean square error (LMMSE), least mean square (LMS),recursive least square (RLS), direct matrix inversion (DMI),zero-forcing, or some other technique. FIR filter 360 filters the inputsamples y(k) with the equalizer coefficients and provides output samples{circumflex over (x)}(k), which are estimates of the desired signalx(k).

The time-domain channel impulse response (CIR) between base station 110and wireless device 120 may be considered as having L channel taps h(1)through h(L), where L may be any value, e.g., L=64. Each channel taph(l), for l=1, . . . , L, has a particular complex gain and a particulartime delay, both of which are determined by the wireless environment.The CIR may be given in vector form as follows:h _(n) =[h _(n)(1)h _(n)(2) . . . h _(n)(L)]^(T),  Eq (2)where h _(n) is an L×1 vector for the CIR in time interval n, and

-   -   “^(T)” denotes a transpose.

Wireless device 120 attempts to derive accurate estimates of the Lchannel taps in the CIR. Within channel estimator 310, an initialchannel estimator 320 derives an initial CIRE based on the pilotreceived from base station 110. In an embodiment, the initial CIRE maybe derived as: $\begin{matrix}{{{{\overset{\sim}{h}}_{n}(l)} = {\frac{1}{K} \cdot {\sum\limits_{i = 0}^{K - 1}{{y( {{n \cdot K} + l - 1 + i} )} \cdot {p^{*}(i)}}}}},{{{for}\quad l} = 1},\ldots\quad,L,} & {{Eq}\quad(3)}\end{matrix}$where {tilde over (h)}_(n)(l) is an initial estimate of channel tap h(l)in time interval n,

-   -   K is the accumulation length, and    -   “*” denotes a complex conjugate.        The “l−1” in equation (3) is due to index l starting at 1        instead of 0.

In equation (3), channel tap h(l) is estimated by despreading the inputsamples y(k) in the time domain with the pilot sequence p(k) at a timeoffset of l−1. L different channel taps may be estimated with Ldifferent time offsets. The despreading for each time offset may beachieved by multiplying the input samples y(k) for that time offset withthe complex conjugated pilot chips p*(k) and accumulating the resultsover K chips. K is an integer multiple of the length of an orthogonalcode used for the pilot. The pilot orthogonal code is 256 chips long inW-CDMA and 128 chips long in cdma2000. K may be equal to one pilotsymbol, multiple pilot symbols, one slot, multiple slots, one frame, orsome other duration. A slot covers 2560 chips and 10 pilot symbols inW-CDMA and covers 768 chips and 6 pilot symbols in cdma2000.

An initial CIRE may be derived for each time interval n. A time intervalmay be a slot, a frame, or some other time duration. The initial CIRE iscomposed of L channel tap estimates and may be given as {tilde over (h)}_(n)=[{tilde over (h)}_(n)(1) {tilde over (h)}_(n)(2) . . . {tilde over(h)}_(n)(L)]^(T). The initial CIRE contains estimation errors and noiseand may be filtered across multiple time intervals to reduce theestimation errors and noise.

In an embodiment that is shown in FIG. 3, a channel IIR filter 330filters the initial CIRE, as follows:ĥ _(n)=α_(n) ·{tilde over (h)} _(n)+(1−α_(n))· ĥ _(n−1),  Eq (4)where ĥ _(n)=[ĥ_(n)(1)ĥ_(n)(2) . . . ĥ_(n)(L)]^(T) is an L×1 vector forthe filtered CIRE in time interval n, and

-   -   α_(n) is a coefficient for time interval n.        The IIR filtering in equation (4) is performed separately for        each of the L channel taps. A coefficient computation unit 340        derives the coefficient α_(n) for IIR filter 330.

FIG. 4 shows a block diagram of an embodiment of channel IIR filter 330in FIG. 3. In this embodiment, channel IIR filter 330 includes L 1-tapIIR filters 410 a through 4101 for the L channel taps. Each IIR filter410 performs filtering for one tap index. Within the 1-tap IIR filterfor tap index l, where lε{1, . . . , L}, a multiplier 412 receives andmultiplies an initial channel tap estimate {tilde over (h)}_(n)(l) withcoefficient α_(n). A summer 414 subtracts coefficient α_(n) from 1.0 andprovides (1−α_(n)). A multiplier 416 multiplies a delayed channel tapestimate ĥ_(n−1)(l) from a register 420 with (1−α_(n)). A summer 418sums the outputs of multipliers 412 and 416 and provides a filteredchannel tap estimate ĥ_(n)(l). Register 420 stores filtered channel tapestimate ĥ_(n)(l) for use in the next time interval.

The filtering in equation (4) reduces noise and improves estimationaccuracy. Hence, the filtered CIRE ĥ _(n) is generally an improvedestimate of the CIR h _(n). Coefficient α_(n) determines the amount offiltering. In general, 1>α_(n)>0, with a larger α_(n) corresponding toless filtering, and vice versa. In the following description,coefficient α_(n) is referred to as alpha.

It can be shown that improved performance may be achieved with differentamounts of filtering for the initial CIRE in different operatingscenarios. A good value for alpha may be dependent on speed, receivedsignal quality, and possibly other factors.

FIG. 5 shows plots of throughput versus alpha for three different speedscenarios. A plot 510 shows throughput versus alpha for a high-speedscenario of 120 Km/hr, a plot 512 shows throughput versus alpha for amoderate-speed scenario of 30 Km/hr, and a plot 514 shows throughputversus alpha for a low-speed scenario of 3 Km/hr. These plots indicatethat the highest throughput may be achieved with alpha between 0.8 to1.0 for the high-speed scenario, between 0.5 to 0.7 for themoderate-speed scenario, and between 0.2 and 0.3 for the low-speedscenario.

FIG. 5 indicates that a good choice of alpha depends on mobility. Asmaller alpha (more filtering) is better for a slowly varying channelwhereas a larger alpha (less filtering) is better for a fast changingchannel. It can be shown that a good choice of alpha also depends onreceived signal quality. For a given speed, a smaller alpha (morefiltering) is better for low received signal quality whereas a largeralpha (less filtering) is better for high received signal quality. Assuggested by the plots in FIG. 5, performance may degrade significantlyif an inappropriate value is used for alpha.

The filtering techniques described herein may reduce estimation errorsand provide good performance for various operating scenarios. Thesetechniques include prediction-based techniques and a normalizedvariation technique. The prediction-based techniques may be implementedwith an adaptive filter or a bank of prediction filters.

In an embodiment of the prediction-based techniques, alpha is updated insmall steps with an adaptive filter. In an embodiment, the IIR filter inequation (4) is also used as a prediction filter that predicts thechannel taps for the next time interval. Hence, in time interval n−1,the filtered CIRE ĥ _(n−1) generated by the IIR filter is used as thepredicted CIRE for time interval n

Prediction errors between the initial CIRE and the predicted CIRE may beexpressed as:e _(n) ={tilde over (h)} _(n) −ĥ _(n−1),  Eq (5)where e _(n)=[e_(n)(1)e_(n)(2) . . . e_(n)(L)]^(T) is an L×1 vector ofprediction errors for the L predicted channel taps in time interval n.

Alpha may be adaptively updated in each time interval n as follows:$\begin{matrix}{{\alpha_{n + 1} = {\alpha_{n} - {\chi \cdot \frac{\partial{{\underset{\_}{e}}_{n}}^{2}}{\partial\alpha}}}},} & {{Eq}\quad(6)}\end{matrix}$where ∥e _(n)∥² is the norm square of the prediction error vector, and

-   -   χ is a coefficient that determines the rate of adaptation for        alpha.

Equation (6) updates alpha to minimize the norm square of the predictionerrors to achieve minimum mean square error (MMSE). The partialderivative term ∂∥e _(n)∥²/∂α a is indicative of an error gradient.Alpha is updated based on, and in the opposite direction of, thegradient of the norm square prediction error. The speed of adaptation isdetermined by coefficient χ, which may be selected to provide goodperformance. Coefficient χ may be set to 0.01 or some other value.

The partial derivative term in equation (6) may be expressed as:$\begin{matrix}\begin{matrix}{\frac{\partial{{\underset{\_}{e}}_{n}}^{2}}{\partial\alpha} = {{- 2}\quad{Re}\{ {{\underset{\_}{e}}_{n}^{H} \cdot \frac{\partial{\underset{\_}{\hat{h}}}_{n - 1}}{\partial\alpha}} \}}} \\{{= {{- 2}\quad{Re}\{ {{\underset{\_}{e}}_{n}^{H} \cdot {\underset{\_}{f}}_{n}} \}}},}\end{matrix} & {{Eq}\quad(7)}\end{matrix}$where “^(H)” denotes a conjugate transpose.

The term ∂ĥ _(n−1)/∂α in equation (7) may be expressed as:$\begin{matrix}{{\frac{\partial{\underset{\_}{\hat{h}}}_{n - 1}}{\partial\alpha} = {{\underset{\_}{f}}_{n} = {{\underset{\_}{e}}_{n - 1} + {( {1 - \alpha_{n}} ) \cdot {\underset{\_}{f}}_{n - 1}}}}},} & {{Eq}\quad(8)}\end{matrix}$where f _(n)=[ƒ_(n)(1)ƒ_(n)(2) . . . ƒ_(n)(L)]^(T) is an L×1 vector offiltered prediction errors for the L channel taps in time interval n.

Equation (7) indicates that the term ∂ĥ _(n−1)/∂α may be derived basedon the prediction errors e _(n) computed in the current time interval nand the filtered prediction errors f _(n) for the current time intervaln.

The partial derivative term in equation (6) may then be expressed as:$\begin{matrix}{\frac{\partial{{\underset{\_}{e}}_{n}}^{2}}{\partial\alpha} = {{- 2} \cdot {\sum\limits_{\ell = 1}^{L}{{Re}{\{ {{e_{n}^{*}(l)} \cdot {f_{n}(l)}} \}.}}}}} & {{Eq}\quad(9)}\end{matrix}$

Alpha may then be updated as: $\begin{matrix}{\alpha_{n + 1} = {\alpha_{n} + {2{\chi \cdot {\sum\limits_{\ell = 1}^{L}{{Re}{\{ {{e_{n}^{*}(l)} \cdot {f_{n}(l)}} \}.}}}}}}} & {{Eq}\quad(10)}\end{matrix}$

In the embodiment shown in equations (6) through (10), a single alpha isused for all L channel taps, and this alpha is updated based on all Lchannel taps. In another embodiment, a separate alpha is used for eachchannel tap and may be updated based on the prediction error for thatchannel tap, as follows:${{\alpha_{n + 1}(l)} = {{\alpha_{n}(l)} - {\chi \cdot \frac{\partial{{e_{n}(l)}}^{2}}{\partial\alpha}}}},{\frac{\partial{{e_{n}(l)}}^{2}}{\partial\alpha} = {{{- 2}\quad{Re}\{ {{e_{n}^{*}(l)} \cdot \frac{\partial{{\hat{h}}_{n - 1}(l)}}{\partial\alpha}} \}}\quad = {{- 2}\quad{Re}\{ {{e_{n}^{*}(l)} \cdot {f_{n}(l)}} \}}}},{and}$$\frac{\partial{{\hat{h}}_{n - 1}(l)}}{\partial\alpha} = {{f_{n}(l)} = {{e_{n - 1}(l)} + {( {1 - {\alpha_{n}(l)}} ) \cdot {{f_{n - 1}(l)}.}}}}$

Alpha may be updated based on an adaptive filter as follows. Initially,the filtered CIRE ĥ _(n−1) and the filtered prediction errors f _(n) areinitialized to zero. Alpha may be initialized to a value that providesgood performance for most operating scenarios, e.g., α_(n)=0.6.Thereafter, alpha may be updated in each time interval n as follows:

-   -   1. Obtain an initial CIRE {tilde over (h)} _(n), e.g., as shown        in equation (3),    -   2. Compute the prediction errors e _(n) as shown in equation        (5),    -   3. Compute the partial derivative term ∂∥e _(n)∥²/∂α based on        the prediction errors e _(n) and the filtered prediction errors        f _(n),as shown in equation (9),    -   4. Update alpha based on the partial derivative term and the        step size χ, as shown in equation (10), and    -   5. Update the filtered prediction errors based on the prediction        errors e _(n) and the updated alpha α_(n+1), as shown in        equation (8).        The updated alpha α_(n+1) may be used to filter the initial CIRE        in the next time interval.

FIG. 6 shows an embodiment of a coefficient computation unit 340 a thatupdates alpha with an adaptive filter. Channel IIR filter 330 filtersthe initial CIRE {tilde over (h)} _(n) with the current alpha α_(n) andprovides the filtered CIRE ĥ _(n). Within unit 340 a, a prediction errorcomputation unit 610 receives the initial CIRE {tilde over (h)} _(n) andthe predicted CIRE ĥ _(n−1) from a register 616. Unit 610 computes theprediction errors e _(n) as shown in equation (5). An alpha update unit614 receives the prediction errors e _(n) and the filtered predictionerrors f _(n), updates the alpha as shown in equations (9) and (10), andprovides the updated alpha α_(n+1) for the next time interval. A filter612 filters the prediction errors e _(n) as shown in equation (8) andprovides the filtered prediction errors for the next time interval.Register 616 receives and stores the filtered CIRE ĥ _(n), which is usedas the predicted CIRE for the next time interval.

The use of an adaptive filter to update alpha may provide variousadvantages. First, the filtered CIRE, the filtered prediction errors,and alpha may be derived with relatively small amounts of computationand memory. Second, fast convergence rate may be achieved since thefiltered prediction errors are obtained based on a variable IIR filter,as shown in equation (8). Third, the adaptation speed may be controlledby selecting a suitable value for coefficient χ.

In another embodiment of the prediction-based techniques, alpha isselected from among a bank of prediction filters with different alphas.In this embodiment, the initial CIRE may be filtered with M differentprediction filters, as follows:ĥ _(n) ^((m))=α^((m)) ·{tilde over (h)} _(n)+(1−α^((m)))·ĥ _(n−1)^((m)), for m=1, . . . , M,  Eq (11)where ĥ _(n) ^((m))=[ĥ_(n) ^((m))(1) ĥ_(n) ^((m))(2) . . . ĥ_(n)^((m))(L)]^(T) is an L×1 vector for the predicted CIRE from predictionfilter m in time interval n, and

-   -   α^((m)) is the alpha for prediction filter m.

M different alphas may be used for the M prediction filters, where ingeneral M>1. In an embodiment, the M alphas are evenly distributed from0 to 1, e.g., α^((m))=m/M. For example, M may be equal to 10, and 10prediction filters may be implemented with 10 equally spaced alphas of0.1, 0.2, . . . , 1.0. The M alphas may also be set to other values,e.g., more concentrated in certain ranges where the wireless device isexpected to operate.

The prediction errors for each prediction filter may be expressed as:e _(n) ^((m)) ={tilde over (h)} _(n) −ĥ _(n−1) ^((m)), for m=1, . . . ,M,  Eq (12)where e _(n) ^((m))=[e_(n) ^((m))(1) e_(n) ^((m))(2) . . . e_(n)^((m))(L)]^(T) is an L×1 vector of prediction errors for predictionfilter m in time interval n.

In each time interval n, one of the M alphas may be selected for use, asfollows: $\begin{matrix}{{m_{n} = {\min\limits_{{m = 1},\quad\ldots\quad,M}{\{ {{\underset{\_}{e}}_{n}^{(m)}}^{2} \}}}},} & {{Eq}\quad(13)} \\{{\alpha_{n + 1} = \alpha^{(m_{n})}},} & {{Eq}\quad(14)}\end{matrix}$where

{ } denotes an expectation operation,

-   -   {∥e _(n) ^((m))∥²} is a prediction mean square error (MSE) for        prediction filter m, and    -   m_(n) is the index of the prediction filter with the minimum        prediction MSE.

In equation (13), the prediction filter that gives the minimumprediction MSE for all L channel taps is selected. In equation (14), thealpha for the selected prediction filter is provided as the alpha usedto filter the initial CIRE.

The prediction MSE may be estimated for each prediction filter m, asfollows: $\begin{matrix}{{{MSE}_{n}^{(m)} = {{\eta \cdot {\sum\limits_{\ell = 1}^{L}{{e_{n}^{(m)}(l)}}^{2}}} + {( {1 - \eta} ) \cdot {MSE}_{n - 1}^{(m)}}}},} & {{Eq}\quad(15)}\end{matrix}$where MSE_(n) ^((m)) is an estimated prediction MSE for predictionfilter m in time interval n, and

-   -   η is a coefficient that determines the amount of averaging for        the prediction MSE.        Coefficient η may be set to 0.05 or some other value.

Alpha may be derived based on a bank of prediction filters as follows.Initially, the predicted CIRE ĥ _(n−1) ^((m)) and the estimatedprediction MSE, MSE_(n−1) ^((m)), for each of the M prediction filtersare initialized to zero. Thereafter, alpha may be selected in each timeinterval n as follows:

-   -   1. Obtain an initial CIRE {tilde over (h)} _(n), e.g., as shown        in equation (3),    -   2. Compute the prediction errors e _(n) ^((m)) for each        prediction filter, as shown in equation (12),    -   3. Compute the estimated prediction MSE, MSE_(n) ^((m)), for        each prediction filter based on its prediction errors e _(n)        ^((m)), as shown in equation (15),    -   4. Select the alpha of the prediction filter with the smallest        estimated prediction MSE, as shown in equations (13) and (14),        and    -   5. Update each prediction filter as shown in equation (11).

FIG. 7 shows an embodiment of a coefficient computation unit 340 b thatderives alpha based on a bank of prediction filters. Unit 340 b includesM processing sections 710 a through 710 m for M different alphas, adetector 720, and a selector 730.

Within each processing section 710, a prediction filter 712 filters theinitial CIRE {tilde over (h)} _(n) with an assigned alpha α^((m)), asshown in equation (11), and provides a filtered CIRE ĥ _(n) ^((m)). Aregister 714 stores the filtered CIRE ĥ _(n) ^((m)), which is used asthe predicted CIRE for the next time interval. A unit 716 receives theinitial CIRE {tilde over (h)} _(n) and the predicted CIRE ĥ _(n−1)^((m)) and computes the prediction errors e _(n) ^((m)), as shown inequation (12). An MSE estimator 718 derives the estimated prediction MSEbased on the prediction errors e _(n) ^((m)), as shown in equation (15).

Detector 720 receives the estimated prediction MSEs from all M MSEestimators 718 a through 718 m, identifies the best prediction filterwith the smallest estimated prediction MSE, and provides the alpha forthe best prediction filter as the alpha α_(n+1) for the next timeinterval. Selector 730 provides the filtered CIRE from the bestprediction filter as the filtered CIRE ĥ _(n).

In one embodiment, a separate channel IIR filter is maintained, and thealpha for this IIR filter is updated based on the alpha of the bestprediction filter in each time interval. In another embodiment, thefiltered CIRE from the best prediction filter is provided as thefiltered CIRE ĥ _(n). In this embodiment, one of the prediction filtersacts as the channel IIR filter in each time interval.

The use of a bank of prediction filters to derive alpha may provideseveral advantages. First, the filter bank settles to the best alphavalue quickly. Second, the filter bank is able to adapt to changingchannel conditions with a convergence delay that is dependent on the IIRfilter used to estimate the prediction MSE in equation (15). However,the filter bank generally uses more computation and memory than theadaptive filter described above.

In an embodiment of the normalized variation technique, alpha is derivedbased on estimated variation of the wireless channel. The wirelesschannel may be modeled to have “memory”, which is related to the timeconstant of the filtering for the initial CIRE. The variation of thewireless channel is inversely related to the memory of the channel.Hence, the variation of the channel or the memory of the channel may beestimated and used to determine a good value for alpha.

The initial CIRE is a noisy estimate of the CIR and may be expressed as:{tilde over (h)} _(n) =h _(n) +w _(n),  (16)where w _(n) is an L×1 vector of noise and estimation errors in timeinterval n.

A normalized variation of the wireless channel may be defined as:$\begin{matrix}{{{NV} = \frac{E\{ {{{\underset{\_}{h}}_{n} - {\underset{\_}{h}}_{n - 1}}}^{2} \}}{E\{ {{\underset{\_}{h}}_{n}}^{2} \}}},} & {{Eq}\quad(17)}\end{matrix}$where

{∥h _(n)−h _(n−1)∥²} is the expected difference in the CIR in timeinterval n,

-   -   {∥h _(n)∥²} is the expected channel energy in time interval n,        and    -   NV is the normalized variation of the wireless channel.

The normalized variation in equation (17) may be rewritten as:$\begin{matrix}{{{NV} = \frac{{E\{ {{{\underset{\_}{\overset{\sim}{h}}}_{n} - {\overset{\sim}{\underset{\_}{h}}}_{n - 1}}}^{2} \}} - {2E\{ {{\underset{\_}{w}}_{n}}^{2} \}}}{{E\{ {{\underset{\_}{\overset{\sim}{h}}}_{n}}^{2} \}} - {E\{ {{\underset{\_}{w}}_{n}}^{2} \}}}},} & {{Eq}\quad(18)}\end{matrix}$where

{∥{tilde over (h)} _(n)−{tilde over (h)} _(n−1)∥²} is the expecteddifference in the initial CIRE in time interval n,

-   -   {∥{tilde over (h)} _(n)∥²} is the expected energy of the initial        CIRE in time interval n, and    -   {∥w _(n)∥²} is the expected noise energy in time interval n.

Each of the three different expectation quantities in equation (18) maybe estimated based on the initial CIRE. To estimate

{∥{tilde over (h)} _(n)−{tilde over (h)} _(n−1)∥²}, the quantity ∥{tildeover (h)} _(n)−{tilde over (h)} _(n−1)∥² may first be computed as:$\begin{matrix}{{{\overset{\sim}{D}}_{n} = {{{{\overset{\sim}{\underset{\_}{h}}}_{n} - {\underset{\_}{\overset{\sim}{h}}}_{n - 1}}}^{2} = {\sum\limits_{l = 1}^{L}\quad{{{{\overset{\sim}{h}}_{n}(l)} - {{\overset{\sim}{h}}_{n - 1}(l)}}}^{2}}}},} & {{Eq}\quad(19)}\end{matrix}$where {tilde over (D)}_(n) is the norm square of the differences betweenthe initial channel tap estimates for time intervals n and n−1.

The difference norm square {tilde over (D)}_(n) may be filtered asfollows:{circumflex over (D)} _(n) =μ·{tilde over (D)} _(n)+(1−μ)·{circumflexover (D)}_(n−1),  Eq (20)where {circumflex over (D)}_(n) is an estimate of

{∥{tilde over (h)} _(n)−{tilde over (h)} _(n−1)∥²}, and

-   -   μ is a coefficient that determines the amount of averaging for        {circumflex over (D)}_(n).        Coefficient μ may be set to 0.5 or some other value.

To estimate

{∥{tilde over (h)} _(n)∥²}, the quantity ∥{tilde over (h)} _(n)∥² mayfirst be computed as: $\begin{matrix}\begin{matrix}{{{\overset{\sim}{H}}_{n} = {{{\underset{\_}{\overset{\sim}{h}}}_{n}}^{2} = {\sum\limits_{l = 1}^{L}\quad{{{\overset{\sim}{h}}_{n}(l)}}^{2}}}},} & \square\end{matrix}_{n} & {{Eq}\quad(21)}\end{matrix}$where {tilde over (H)}_(n) is the norm square of the initial channel tapestimates for time interval n.

The channel norm square {tilde over (H)}_(n) may be filtered as follows:Ĥ _(n) =μ· {tilde over (H)} _(n)+(1−μ)·Ĥ _(n−1),  Eq (22)where Ĥ_(n) is an estimate of

{∥{tilde over (h)} _(n)∥²}.

To estimate

{∥w _(n)∥²}, some channel taps at one or both ends of the initial CIREmay be assumed to contain pure noise and no signal. The noise energy fortime interval n, denoted as {tilde over (W)}_(n), may then be estimatedas: $\begin{matrix}{{\overset{\sim}{W}}_{n} = {\frac{1}{A + B} \cdot {( {{\sum\limits_{l = 1}^{A}{{{\overset{\sim}{h}}_{n}(l)}}^{2}} + {\sum\limits_{l = {L - B + 1}}^{L}{{{\overset{\sim}{h}}_{n}(l)}}^{2}}} ).}}} & {{Eq}\quad(23)}\end{matrix}$

Equation (23) assumes that the first A initial channel tap estimates aswell as the last B initial channel tap estimates are pure noise. A and Bmay be selected to achieve good noise estimation performance. In anembodiment, L=64 and A=B=4. Other values may also be used for L, A andB. The noise energy may also be estimated in other manners, e.g., basedon initial channel tap estimates with low energy.

The noise energy {tilde over (W)}_(n) may be filtered as follows:Ŵ _(n) =μ·{tilde over (W)} _(n)+(1−μ)·Ŵ _(n−1),  Eq (24)where Ŵ_(n) is an estimate of

{∥w _(n)∥²}.

The same coefficient μ may be used to derive all three quantities{circumflex over (D)}_(n), Ĥ_(n) and Ŵ_(n), as shown in equations (20),(22) and (24), respectively. Alternatively, different coefficients maybe used for different quantities.

The wireless channel may be represented with a Gauss-Markov channelmodel, as follows:h _(n) =γ·h _(n−1)+√{square root over (1−γ²)}· u _(n),  (25)where γε[0,1] may be viewed as the memory of the wireless channel, and

-   -   u _(n) is an L×1 vector of independent identically distributed        (i.i.d.) Gaussian random variables.

The channel memory γ provides another way of parameterizing Dopplereffect in the wireless channel. A larger value of γ means that thewireless channel has a longer memory, which corresponds to morefiltering.

Combining equations (17) and (25), the normalized variation may be givenas:NV=2(1−γ).  Eq (26)

The channel memory may then be expressed as: $\begin{matrix}{\gamma = {1 - {\frac{NV}{2}.}}} & {{Eq}\quad(27)}\end{matrix}$

The three expectation quantities of the normalized variation in equation(18) may be estimated as described above. The channel memory may then beestimated as follows: $\begin{matrix}{{{\hat{\gamma}}_{n} = {1 - {\frac{1}{2}( \frac{{\hat{D}}_{n} - {2{\hat{W}}_{n}}}{{\hat{H}}_{n} - {\hat{W}}_{n}} )}}},} & {{Eq}\quad(28)}\end{matrix}$where {circumflex over (γ)}_(n) is the estimated channel memory in timeinterval n.

In an embodiment, alpha is determined for different values of channelmemory γ or normalized variation NV (e.g., based on computer simulation,calculation, and/or empirical measurements) and stored in a look-uptable. Thereafter, the channel memory or normalized variation may beestimated as described above and provided to the look-up table. Thelook-up table would then return the alpha value to use to filter theinitial CIRE.

In another embodiment, alpha is computed directly. A filter may bedefined as follows:ĥ _(n) =a·{tilde over (h)} _(n) +b·ĥ _(n−1),  Eq (29)where a and b are two coefficients. Given

{∥{tilde over (h)} _(n)∥²},

{∥w _(n)∥²} and γ, the values of a and b may be determined such that theexpected estimation error ξ=

{∥ĥ _(n)−h _(n)∥²} is minimized.

The solution to the above criterion may be derived as follows. Variablesr and ρ may be defined as: $\begin{matrix}{{r = {1 - \frac{E\{ {{\underset{\_}{w}}_{n}}^{2} \}}{E\{ {{\underset{\_}{h}}_{n}}^{2} \}}}},{and}} & {{Eq}\quad(30)} \\{\rho = {\frac{2 - {r \cdot ( {1 + \gamma^{2}} )}}{\gamma \cdot ( {r - 1} )}.}} & {{Eq}\quad(31)}\end{matrix}$

The values of a and b that satisfy the above criterion may then be givenas: $\begin{matrix}{{b^{*} = \frac{{- \rho} - \sqrt{\rho^{2} - 4}}{2}},{and}} & {{Eq}\quad(32)} \\{a^{*} = {\frac{1 - b^{2}}{2 - {r \cdot ( {1 - {b \cdot \gamma}} )}}.}} & {{Eq}\quad(33)}\end{matrix}$

Alpha may then be expressed as: $\begin{matrix}{\alpha_{n + 1} = {\frac{a}{a + b}.}} & {{Eq}\quad(34)}\end{matrix}$

Alpha may be derived based on the normalized variation technique asfollows. Initially, the quantities {circumflex over (D)}_(n−1), Ĥ_(n−1)and Ŵ_(n−1) are initialized to zero. Thereafter, alpha may be derived ineach time interval n as follows:

-   -   1. Obtain an initial CIRE {tilde over (h)} _(n), e.g., as shown        in equation (3),    -   2. Compute {circumflex over (D)}_(n), Ĥ_(n) and Ŵ_(n) based on        the initial CIRE, as shown in equations (19) through (24),    -   3. Compute an estimate of the channel memory, {circumflex over        (γ)}_(n), as shown in equation (28),    -   4. Compute an estimate of r as $\begin{matrix}        {{{\hat{r}}_{n} = {1 - \frac{{\hat{W}}_{n}}{{\hat{H}}_{n} - {\hat{W}}_{n}}}},} & \quad        \end{matrix}$    -   5. Compute an estimate of ρ as shown in equation (31),    -   6. Compute estimates of a and b as shown in equations (32) and        (33), and    -   7. Compute alpha as shown in equation (34).        The computed alpha α_(n+1) may be used to filter the initial        CIRE in the next time interval.

FIG. 8 shows an embodiment of a coefficient computation unit 340 c thatderives alpha based on the normalized variation technique. Within unit340 c, the initial CIRE {tilde over (h)} _(n) is provided to units 810,812 and 814 and a register 816. Register 816 stores {tilde over (h)}_(n) and provides {tilde over (h)} _(n−1). Unit 810 derives an estimateof

{∥{tilde over (h)} _(n)∥²}, as shown in equations (21) and (22), andprovides this estimate as Ĥ_(n). Unit 812 derives an estimate of

{∥w _(n)∥²}, as shown in equations (23) and (24), and provides thisestimate as Ŵ_(n). Unit 814 also receives {tilde over (h)} _(n−1) fromregister 816 and derives an estimate of

{∥{tilde over (h)} _(n)−{tilde over (h)} _(n−1)∥²}, as shown inequations (19) and (20), and provides this estimate as {circumflex over(D)}_(n).

In an embodiment, a channel memory estimator 820 estimates the channelmemory based on Ĥ_(n), Ŵ_(n) and {circumflex over (D)}_(n), as shown inequation (28), and provides the estimated channel memory {circumflexover (γ)}_(n). A look-up table 822 receives the estimated channel memoryand provides the alpha α_(n+1) for the next time interval. In anotherembodiment, a computation unit 830 receives Ĥ_(n), Ŵ_(n) and {circumflexover (γ)}_(n) and computes the alpha α_(n+1), as shown in equations (30)through (34).

For clarity, the filtering techniques have been specifically describedfor filtering an initial CIRE to reduce estimation errors. In general,these techniques may be used to filter any type of scalar, vector, andmatrix. For example, a sequence of vectors v _(i) may be obtained fordifferent values of parameter i. Parameter i may be for time, frequency,and so on. The sequence of vectors vi may be filtered based on any ofthe techniques described above to reduce estimation errors and obtain anoutput sequence of vectors having improved characteristics.

FIG. 9 shows an embodiment of a process 900 for filtering noisyestimates. A sequence of input values is filtered with an IIR filterhaving at least one coefficient to obtain a sequence of output values(block 910). In an embodiment, the sequence of input values is for aninitial CIRE, and the sequence of output values is for a filtered CIRE.In another embodiment, the sequence of input values is for an initialfrequency-domain channel frequency response estimate, and the sequenceof output values is for a filtered channel frequency response estimate.The input and output values may also be for other quantities. The atleast one coefficient of the IIR filter is updated based on the sequenceof input values, e.g., using any of the techniques described herein(block 920).

FIG. 10 shows an embodiment of a process 920 a for updating the at leastone coefficient of the IIR filter with an adaptive filter. Process 920 amay be used for block 920 in FIG. 9. A sequence of predicted values isderived based on the sequence of input values (block 1012). The sequenceof predicted values may be equal to the sequence of output values,appropriately delayed. Prediction errors between the sequence ofpredicted values and the sequence of input values are determined (block1014). The prediction errors are filtered (e.g., with the coefficient(s)of the IIR filter) to obtain filtered prediction errors (block 1016).The coefficient(s) of the IIR filter are updated based on the predictionerrors and the filtered prediction errors (block 1018). An errorgradient of the prediction errors may also be determined in othermanners, and the coefficient(s) of the IIR filter may be updated basedon the error gradient.

FIG. 11 shows an embodiment of a process 920 b for deriving the at leastone coefficient of the IIR filter with a bank of prediction filters.Process 920 b may also be used for block 920 in FIG. 9. The sequence ofinput values is filtered with multiple prediction filters to obtainmultiple sequences of predicted values (block 1112). Each predictionfilter has a different set of at least one coefficient. The predictionfilter with the smallest prediction error among the multiple predictionfilters is identified. This may be achieved by computing errors betweenthe sequence of input values and the sequence of predicted values foreach prediction filter (block 1114), determining the mean square errorfor each prediction filter based on the errors for the prediction filter(block 1116), and identifying the prediction filter with the smallestmean square error (block 1118). The set of at least one coefficient forthe identified prediction filter is selected for use to filter thesequence of input values (block 1120).

FIG. 12 shows an embodiment of a process 920 c for updating the at leastone coefficient of the IIR filter based on the normalized variationtechnique. Process 920 c may also be used for block 920 in FIG. 9. Thesequence of input samples is a noisy estimate of a sequence of actualvalues. Variation of the sequence of actual samples is estimated basedon the sequence of input values. This may be achieved by estimating theenergy of the sequence of input values (block 1212), estimating thenoise in the sequence of input values (block 1214), and estimating thevariation of the sequence of input samples (block 1216). The variationof the sequence of actual samples may then be estimated based on theestimated energy, estimated noise, and estimated variation of thesequence of input values (block 1218). The at least one coefficient ofthe IIR filter is then determined based on the estimated variation ofthe sequence of actual samples, e.g., using a look-up table or by directcalculation (block 1220).

The filtering techniques described herein may be implemented by variousmeans. For example, these techniques may be implemented in hardware,firmware, software, or a combination thereof. For a hardwareimplementation, the processing units used to perform filtering andupdating may be implemented within one or more application specificintegrated circuits (ASICs), digital signal processors (DSPs), digitalsignal processing devices (DSPDs), programmable logic devices (PLDs),field programmable gate arrays (FPGAs), processors, controllers,micro-controllers, microprocessors, electronic devices, other electronicunits designed to perform the functions described herein, or acombination thereof.

For a firmware and/or software implementation, the techniques may beimplemented with modules (e.g., procedures, functions, and so on) thatperform the functions described herein. The firmware and/or softwarecodes may be stored in a memory (e.g., memory 292 in FIG. 2) andexecuted by a processor (e.g., processor 290). The memory may beimplemented within the processor or external to the processor.

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the invention. Thus, the present invention is notintended to be limited to the embodiments shown herein but is to beaccorded the widest scope consistent with the principles and novelfeatures disclosed herein.

1. An apparatus comprising: at least one processor configured to filtera sequence of input values with an infinite impulse response (IIR)filter having at least one coefficient to obtain a sequence of outputvalues, and to update the at least one coefficient based on the sequenceof input values; and a memory coupled to the at least one processor. 2.The apparatus of claim 1, wherein the sequence of input values is for aninitial channel impulse response estimate (CIRE) and the sequence ofoutput values is for a filtered CIRE.
 3. The apparatus of claim 1,wherein the IIR filter has a single coefficient.
 4. The apparatus ofclaim 1, wherein the at least one processor is configured to derive asequence of predicted values based on the sequence of input values, todetermine prediction errors between the sequence of predicted values andthe sequence of input values, and to update the at least one coefficientbased on the prediction errors.
 5. The apparatus of claim 4, wherein theat least one processor is configured to use the sequence of outputvalues as the sequence of predicted values.
 6. The apparatus of claim 4,wherein the at least one processor is configured to filter theprediction errors to obtain filtered prediction errors and to update theat least one coefficient based on the prediction errors and the filteredprediction errors.
 7. The apparatus of claim 6, wherein the at least oneprocessor is configured to filter the prediction errors with the atleast one coefficient of the IIR filter to obtain the filteredprediction errors.
 8. The apparatus of claim 4, wherein the at least oneprocessor is configured to determine an error gradient of the predictionerrors and to update the at least one coefficient based on the errorgradient.
 9. The apparatus of claim 1, wherein the at least oneprocessor is configured to filter the sequence of input values withmultiple prediction filters to obtain multiple sequences of predictedvalues, each prediction filter having a different set of at least onecoefficient, to identify a prediction filter with a smallest predictionerror among the multiple prediction filters, and to filter the sequenceof input values using the set of at least one coefficient for theidentified prediction filter.
 10. The apparatus of claim 9, wherein theat least one processor is configured to compute errors between thesequence of input values and the sequence of predicted values for eachprediction filter, to determine a mean square error for each predictionfilter based on the errors for the prediction filter, and to identifythe prediction filter with a smallest mean square error.
 11. Theapparatus of claim 9, wherein each prediction filter has a singlecoefficient, and wherein the multiple prediction filters have differentcoefficients.
 12. The apparatus of claim 1, wherein the sequence ofinput samples is a noisy estimate of a sequence of actual values, andwherein the at least one processor is configured to estimate variationof the sequence of actual samples based on the sequence of input values,and to determine the at least one coefficient based on the estimatedvariation of the sequence of actual samples.
 13. The apparatus of claim12, wherein the at least one processor is configured to estimate energyof the sequence of input values, to estimate noise in the sequence ofinput values, to estimate variation of the sequence of input samples,and to estimate the variation of the sequence of actual samples based onthe estimated energy, the estimated noise, and the estimated variationof the sequence of input values.
 14. The apparatus of claim 12, whereinthe at least one processor is configured to determine the at least onecoefficient based on the estimated variation of the sequence of actualsamples and using a look-up table.
 15. The apparatus of claim 1, whereinthe sequence of input samples is a noisy estimate of a sequence ofactual values, and wherein the at least one processor is configured toestimate memory of a communication channel based on the sequence ofinput values and to determine the at least one coefficient based on theestimated channel memory.
 16. A method comprising: filtering a sequenceof input values with an infinite impulse response (IIR) filter having atleast one coefficient to obtain a sequence of output values; andupdating the at least one coefficient based on the sequence of inputvalues.
 17. The method of claim 16, wherein the updating the at leastone coefficient comprises deriving a sequence of predicted values basedon the sequence of input values, determining prediction errors betweenthe sequence of predicted values and the sequence of input values,filtering the prediction errors to obtain filtered prediction errors,and updating the at least one coefficient based on the prediction errorsand the filtered prediction errors.
 18. The method of claim 16, whereinthe updating the at least one coefficient comprises filtering thesequence of input values with multiple prediction filters to obtainmultiple sequences of predicted values, each prediction filter having adifferent set of at least one coefficient, identifying a predictionfilter with a smallest prediction error among the multiple predictionfilters, and selecting the set of at least one coefficient for theidentified prediction filter as the at least one coefficient.
 19. Themethod of claim 18, wherein the identifying the prediction filter withthe smallest prediction error comprises computing errors between thesequence of input values and the sequence of predicted values for eachprediction filter, determining a mean square error for each predictionfilter based on the errors for the prediction filter, and identifyingthe prediction filter with a smallest mean square error.
 20. The methodof claim 16, wherein the updating the at least one coefficient comprisesestimating variation of a sequence of actual samples based on thesequence of input values, and determining the at least one coefficientbased on the estimated variation of the sequence of actual samples. 21.The method of claim 20, wherein the estimating the variation of thesequence of actual samples comprises estimating energy of the sequenceof input values, estimating noise in the sequence of input values,estimating variation of the sequence of input samples, and estimatingthe variation of the sequence of actual samples based on the estimatedenergy, the estimated noise, and the estimated variation of the sequenceof input values.
 22. An apparatus comprising: means for filtering asequence of input values with an infinite impulse response (IIR) filterhaving at least one coefficient to obtain a sequence of output values;and means for updating the at least one coefficient based on thesequence of input values.
 23. The apparatus of claim 22, wherein themeans for updating the at least one coefficient comprises means forderiving a sequence of predicted values based on the sequence of inputvalues, means for determining prediction errors between the sequence ofpredicted values and the sequence of input values, means for filteringthe prediction errors to obtain filtered prediction errors, and meansfor updating the at least one coefficient based on the prediction errorsand the filtered prediction errors.
 24. The apparatus of claim 22,wherein the means for updating the at least one coefficient comprisesmeans for filtering the sequence of input values with multipleprediction filters to obtain multiple sequences of predicted values,each prediction filter having a different set of at least onecoefficient, means for identifying a prediction filter with a smallestprediction error among the multiple prediction filters, and means forselecting the set of at least one coefficient for the identifiedprediction filter as the at least one coefficient.
 25. The apparatus ofclaim 24, wherein the means for identifying the prediction filter withthe smallest prediction error comprises means for computing errorsbetween the sequence of input values and the sequence of predictedvalues for each prediction filter, means for determining a mean squareerror for each prediction filter based on the errors for the predictionfilter, and means for identifying the prediction filter with a smallestmean square error.
 26. The apparatus of claim 22, wherein the means forupdating the at least one coefficient comprises means for estimatingvariation of a sequence of actual samples based on the sequence of inputvalues, and means for determining the at least one coefficient based onthe estimated variation of the sequence of actual samples.
 27. Theapparatus of claim 26, wherein the means for estimating the variation ofthe sequence of actual samples comprises means for estimating energy ofthe sequence of input values, means for estimating noise in the sequenceof input values, means for estimating variation of the sequence of inputsamples, and means for estimating the variation of the sequence ofactual samples based on the estimated energy, the estimated noise, andthe estimated variation of the sequence of input values.
 28. A processorreadable media for storing instructions operable in a wireless deviceto: filter a sequence of input values with an infinite impulse response(IIR) filter having at least one coefficient to obtain a sequence ofoutput values; and update the at least one coefficient based on thesequence of input values.
 29. An apparatus comprising: at least oneprocessor configured to filter an initial channel impulse responseestimate (CIRE) with an infinite impulse response (IIR) filter having acoefficient to obtain a filtered CIRE, to derive a predicted CIRE basedon the initial CIRE, to determine errors between the initial CIRE andthe predicted CIRE, to filter the errors to obtain filtered errors, andto update the coefficient based on the errors and the filtered errors;and a memory coupled to the at least one processor.
 30. The apparatus ofclaim 29, wherein the at least one processor is configured to use thefiltered CIRE as the predicted CIRE and to filter the errors with thecoefficient of the IIR filter to obtain the filtered errors.
 31. Theapparatus of claim 29, wherein the at least one processor is configuredto derive the initial CIRE by despreading input samples with apseudo-random number (PN) sequence at different time offsets.